﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data;

namespace FancyIdea.PingShui.Core.Dal
{
    public class 行业操作
    {

        #region 行业
        public static bool AddIndustry(string 行业代码, string 行业名称, float 成本利润率)
        {
            string sql = @"insert into 行业表 (行业代码,行业名称,成本利润率) values ('" + 行业代码 + "','" + 行业名称
                + "'," + 成本利润率 + ")";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool UpdateIndustry(string 行业代码, string 行业名称, float 成本利润率)
        {
            string sql = @"update 行业表 set 行业代码='" + 行业代码 + "',行业名称='" + 行业名称 + "',成本利润率=" + 成本利润率
                + " where 行业代码='" + 行业代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static DataTable GetIndustry()
        {
            string sql = @"select * from 行业表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetIndustryDropDown()
        {
            string sql = @"select 行业代码 as value,行业名称 as text from 行业表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataRow GetIndustry(string 行业代码)
        {
            string sql = @"select * from 行业表 where 行业代码='" + 行业代码 + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static bool DeleteIndustry(string 行业代码)
        {
            string sql = @"delete from 行业表 where 行业代码='" + 行业代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool DeleteIndustry(string[] 行业代码)
        {
            return CmdUtil.DeleteMuti("行业表", "行业代码", 行业代码);
        }

        #endregion

        #region 行业细目操作
        public static bool AddIndustryDetail(string 行业代码, string 行业细目名称, string 行业细目代码)
        {
            string sql = @"insert into 行业细目表 (行业代码,行业细目名称,行业细目代码) values ('" + 行业代码
                + "','" + 行业细目名称 + "','" + 行业细目代码 + "')";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool UpdateIndustryDetail(string 行业代码, string 行业细目代码, string 行业细目名称)
        {
            string sql = @"update 行业细目表 set 行业细目代码='" + 行业细目代码 + "',行业细目名称='" + 行业细目名称 + "',行业代码='" + 行业代码
                + "' where 行业细目代码='" + 行业细目代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static DataTable GetIndustryDetail()
        {
            string sql = @"select a.*,b.行业名称 from 行业细目表 a 
left join 行业表 b on b.行业代码=a.行业代码";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetIndustryDetailDropDown()
        {
            string sql = @"select 行业细目代码 as value,行业细目名称 as text from 行业细目表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetIndustryDetailDropDown(string 行业代码)
        {
            string sql = @"select 行业细目代码 as value,行业细目名称 as text from 行业细目表 
where 行业代码='"+行业代码+"'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataRow GetIndustryDetail(string 行业细目代码)
        {
            string sql = @"select a.*,b.行业名称 from 行业细目表 a 
left join 行业表 b on b.行业代码=a.行业代码 
where a.行业细目代码='" + 行业细目代码 + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static DataTable GetIndustryDetailByIndustry(string 行业代码)
        {
            string sql = @"select a.* from 行业细目表 a 
left join 行业表 b on b.行业代码=a.行业代码 
where a.行业代码='" + 行业代码 + "'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static bool DeleteIndustryDetail(string 行业细目代码)
        {
            string sql = @"delete from 行业细目表 where 行业细目代码='" + 行业细目代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool DeleteIndustryDetail(string[] 行业细目代码)
        {
            return CmdUtil.DeleteMuti("行业细目表", "行业细目代码", 行业细目代码);
        }
        #endregion

        #region 行业细目参数

        public static bool AddDetailPara(string 税务机关代码, string 行业代码, string 行业细目代码, float 折旧费, float 折旧预警幅度,
            float 水费, float 水费预警幅度, float 电费, float 电费预警幅度, float 燃气费, float 燃气费预警幅度)
        {
            string sql = @"insert into 行业细目参数表 (ID,税务机关代码,行业代码,行业细目代码,单位面积装修折旧费参考,折旧费预警幅度,单位面积电费参考,电费预警幅度,单位面积水费参考,水费预警幅度,单位面积燃气费参考,燃气费预警幅度) values (
(select nvl(max(id),0)+1 from 行业细目参数表),
'" + 税务机关代码 + "','" + 行业代码 + "','" + 行业细目代码 + "'," + 折旧费 + "," + 折旧预警幅度 + "," + 电费 + "," + 电费预警幅度 + "," + 水费 + "," + 水费预警幅度
 + "," + 燃气费 + "," + 燃气费预警幅度 + ")";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool UpdateDetailPara(int ID, string 税务机关代码, string 行业代码, string 行业细目代码, float 折旧费, float 折旧预警幅度,
            float 水费, float 水费预警幅度, float 电费, float 电费预警幅度, float 燃气费, float 燃气费预警幅度)
        {
            string sql = @"update 行业细目参数表 set 税务机关代码='" + 税务机关代码 + "',行业代码='" + 行业代码 + "',行业细目代码='" + 行业细目代码
                + "',单位面积装修折旧费参考=" + 折旧费 + ",折旧费预警幅度=" + 折旧预警幅度 + ",单位面积电费参考=" + 电费
                + ",电费预警幅度=" + 电费预警幅度 + ",单位面积水费参考=" + 水费 + ",水费预警幅度=" + 水费预警幅度
                + ",单位面积燃气费参考=" + 燃气费 + ",燃气费预警幅度=" + 燃气费预警幅度 + " where ID=" + ID;
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static DataRow GetDetailPara(int ID)
        {
            string sql = @"select a.*,b.行业细目名称,c.行业名称,d.税务机关名称 from 行业细目参数表 a 
left join 行业细目表 b on b.行业细目代码=a.行业细目代码 
left join 行业表 c on c.行业代码=a.行业代码 
left join 税务机关表 d on d.税务机关代码=a.税务机关代码 
where a.ID=" + ID;
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static DataTable GetDetailParaByIndustry(int 行业代码)
        {
            string sql = @"select a.*,b.行业细目名称,c.行业名称,d.税务机关名称 from 行业细目参数表 a 
left join 行业细目表 b on b.行业细目代码=a.行业细目代码 
left join 行业表 c on c.行业代码=a.行业代码 
left join 税务机关表 d on d.税务机关代码=a.税务机关代码 
where a.行业代码='" + 行业代码 + "'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static bool DeleteDetailPara(string 行业细目代码)
        {
            string sql = @"delete from 行业细目参数表 where 行业细目代码='" + 行业细目代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool DeleteDetailPara(string[] 行业细目代码)
        {
            return CmdUtil.DeleteMuti("行业细目参数表", "行业细目代码", 行业细目代码);
        }
        #endregion

    }
}